これらの方程式は画面または有効な [[Canvas (日本語)|Canvas]] の内容を混合して描画する時に使用されます。

これら方程式の目的に対して、一般に色の要素は [0, 255] ではなく [0, 1] の範囲内にあります。[[Canvas (日本語)|Canvas]] 有効時を除き、結果として [0, 1] に固定された浮動小数点 / HDR [[CanvasFormat (日本語)|形式]]となります。

説明:
 
*'''dst''' - 画面の既存色。

*'''src''' - オブジェクトの描画色 (ピクセル・シェーダーにより出力された色または、テクスチャの色により乗算された大域色 ― なにかあるとすれば、シェーダーが使用されていない場合)。

*'''res''' - 処理結果の色。

ここには 0.10.x 以降のバージョンにおける [[BlendMode (日本語)|BlendMode]] の方程式が記載されています:

== 透過 ==

=== "alphamultiply" (透過乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r * (1 - src.a) + src.r * src.a
    res.g = dst.g * (1 - src.a) + src.g * src.a
    res.b = dst.b * (1 - src.a) + src.b * src.a
    res.a = dst.a * (1 - src.a) + src.a

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r * (1 - src.a) + src.r
    res.g = dst.g * (1 - src.a) + src.g
    res.b = dst.b * (1 - src.a) + src.b
    res.a = dst.a * (1 - src.a) + src.a

== 加法 ==

=== "alphamultiply" (透過乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r + (src.r * src.a)
    res.g = dst.g + (src.g * src.a)
    res.b = dst.b + (src.b * src.a)
    res.a = dst.a

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r + src.r
    res.g = dst.g + src.g
    res.b = dst.b + src.b
    res.a = dst.a

== 減法 ==

=== "alphamultiply" (透過乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r - (src.r * src.a)
    res.g = dst.g - (src.g * src.a)
    res.b = dst.b - (src.b * src.a)
    res.a = dst.a

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r - src.r
    res.g = dst.g - src.g
    res.b = dst.b - src.b
    res.a = dst.a

== 置換 ==

=== "alphamultiply" (透過乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = src.r * src.a
    res.g = src.g * src.a
    res.b = src.b * src.a
    res.a = src.a

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = src.r
    res.g = src.g
    res.b = src.b
    res.a = src.a

== 乗法 ==

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = src.r * dst.r
    res.g = src.g * dst.g
    res.b = src.b * dst.b
    res.a = src.a * dst.a

{{notice|0.10.x では、 ''multiply'' と ''alphamultiply'' は ''premultiplied'' と同一の方程式を使用します。この変種は [[11.0 (日本語)|11.0]] 以降で対応していません。}}

== 明度 ==

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = max(src.r, dst.r)
    res.g = max(src.g, dst.g)
    res.b = max(src.b, dst.b)
    res.a = max(src.a, dst.a)

== 暗度 ==

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = min(src.r, dst.r)
    res.g = min(src.g, dst.g)
    res.b = min(src.b, dst.b)
    res.a = min(src.a, dst.a)

== 画面 ==

{{notice| "alphamultiply" (透過乗算) の使用時、この混合方式は数学的に完全かつ正確ではありません。可能ならば、その異形である "alphamultiply" (事前乗算)を選択してください (および内容の混合前に、その時点で RGB により透過が乗算されているか確認してください)。}}

=== "alphamultiply" (透過乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r * (1 - src.r) + (src.r * src.a)
    res.g = dst.g * (1 - src.g) + (src.g * src.a)
    res.b = dst.b * (1 - src.b) + (src.b * src.a)
    res.a = dst.a * (1 - src.a) + src.a

=== "alphamultiply" (事前乗算) [[BlendAlphaMode (日本語)|透過方式]] ===

    res.r = dst.r * (1 - src.r) + src.r
    res.g = dst.g * (1 - src.g) + src.g
    res.b = dst.b * (1 - src.b) + src.b
    res.a = dst.a * (1 - src.a) + src.a

== 旧版 ==

=== 透過 ([[0.9.0]], [[0.9.1]], および [[0.9.2]]) ===

    res.r = dst.r * (1 - src.a) + src.r * src.a
    res.g = dst.g * (1 - src.a) + src.g * src.a
    res.b = dst.b * (1 - src.a) + src.b * src.a
    res.a = dst.a * (1 - src.a) + src.a

=== 透過 ([[0.8.0]] 以前) ===

    res.r = dst.r * (1 - src.a) + src.r * src.a
    res.g = dst.g * (1 - src.a) + src.g * src.a
    res.b = dst.b * (1 - src.a) + src.b * src.a
    res.a = dst.a * (1 - src.a) + src.a * src.a

=== premultiplied ([[0.9.2]] 以前) ===

    res.r = dst.r * (1 - src.a) + src.r
    res.g = dst.g * (1 - src.a) + src.g
    res.b = dst.b * (1 - src.a) + src.b
    res.a = dst.a * (1 - src.a) + src.a

=== 画面 ([[0.9.2]] 以前) ===

    res.r = dst.r * (1 - src.r) + src.r
    res.g = dst.g * (1 - src.g) + src.g
    res.b = dst.b * (1 - src.b) + src.b
    res.a = dst.a * (1 - src.a) + src.a

=== 加法 ([[0.9.2]] 以前) ===

    res.r = dst.r + (src.r * src.a)
    res.g = dst.g + (src.g * src.a)
    res.b = dst.b + (src.b * src.a)
    res.a = dst.a + (src.a * src.a)

=== 減法 ([[0.9.2]] 以前) ===

    res.r = dst.r - src.r * src.a
    res.g = dst.g - src.g * src.a
    res.b = dst.b - src.b * src.a
    res.a = dst.a - src.a * src.a

=== 乗法 ([[0.9.0]], [[0.9.1]], および [[0.9.2]]) ===

    res.r = src.r * dst.r
    res.g = src.g * dst.g
    res.b = src.b * dst.b
    res.a = src.a * dst.a

=== 乗法 ([[0.8.0]] 以前) ===

    res.r = dst.r * (1 - src.a) + src.r * dst.r
    res.g = dst.g * (1 - src.a) + src.g * dst.g
    res.b = dst.b * (1 - src.a) + src.b * dst.b
    res.a = dst.a * (1 - src.a) + src.a * dst.a

=== 置換 ([[0.9.2]] 以前) ===

    res.r = src.r
    res.g = src.g
    res.b = src.b
    res.a = src.a

== 関連 ==
* [[BlendMode (日本語)]]

== そのほかの言語 ==
{{i18n (日本語)|BlendMode Formulas}}